package com.dyna.cp.binlog;

import java.io.Serializable;
import java.util.List;
import java.util.Map;

/**
 * binlog 数据解析
 */
public interface BinLogService {

    /**
     * 处理新增sql
     * @param rows 行数据
     * @param tableData 表数据
     * @param metadata 表字段类型
     */
    void handleWrite(List<Serializable[]> rows, BinaryLogClientRunner.TableData tableData,Map<String, Map<Integer, String>> metadata);

    /**
     * 处理修改sql
     * @param rows 行数据
     * @param tableData 表数据
     * @param metadata 表字段类型
     */
    void handleUpdate(List<Map.Entry<Serializable[], Serializable[]>> rows, BinaryLogClientRunner.TableData tableData,Map<String, Map<Integer, String>> metadata);

    /**
     * 处理删除sql
     * @param rows 行数据
     * @param tableData 表数据
     * @param metadata 表字段类型
     */
    void handleDelete(List<Serializable[]> rows, BinaryLogClientRunner.TableData tableData,Map<String, Map<Integer, String>> metadata);

}
